[C] Criptografia por Inversão de bits
Publicado por Enzo de Brito Ferber 04/03/2006
[ Hits: 12.948 ]
Homepage: http://www.maximasonorizacao.com.br
Programa de criptografia simples que
usa o operador ~(complemento de 1).
O operador ~ faz o seguinte:
01000001 ~
10111110
Todos os bits 0 passam a ser 1, e
todos os 1 passam a ser 0. O
programa criptografa um arquivo
inteiro, não uma só palavra.
#include <stdio.h> #include <stdlib.h> char encode(char ch){ return(~ch); } int set(){ system("clear"); } int abrirArquivo(char caminho[]){ FILE *arqEntrada; FILE *arqSaida; char *textoEntrada; char *textoSaida; char ch; int i=2; //para poder ser usado para alocação dinamica if((arqEntrada = fopen(caminho, "r")) == 0){ printf("Impossivel abrir o arquivo...\n"); printf("Pressione ENTER para continuar...\n"); __fpurge(stdin); ch = getchar(); main(); exit(1); } if((arqSaida = fopen("texto_criptografado.txt", "w")) == 0){ printf("Impossivel abrir o arquivo...\n"); printf("Pressione ENTER para continuar...\n"); __fpurge(stdin); ch = getchar(); main(); } printf("Realizando criptografia...\n"); while(!feof(arqEntrada)){ if((textoEntrada = (char *)calloc(i, sizeof(char)))== 0){ printf("Memoria insuficiente...\n"); exit(1); } if((textoSaida = (char *)calloc(i, sizeof(char)))== 0){ printf("Memoria insuficiente...\n"); exit(1); } fscanf(arqEntrada, "%c", &textoEntrada[i-2]); if(textoEntrada[i-2] == '{FONTE}') break; textoSaida[i-2] = encode(textoEntrada[i-2]); fprintf(arqSaida, "%c", textoSaida[i-2]); i++; } printf("Criptografia do arquivo realizada com sucesso...\n\n\n"); fclose(arqEntrada); fclose(arqSaida); free(textoEntrada); free(textoSaida); system("cat texto_criptografado.txt"); __fpurge(stdin); printf("\n\nPressione ENTER para continuar..."); ch = getchar(); } int main(void){ char caminho[100]; LOOP: set(); printf("\t\t* * * * * CRIPTOGRAFIA DE ARQUIVO * * * * *\n\n\n"); printf("Arquivo: "); __fpurge(stdin); scanf("%[^\n]", caminho); abrirArquivo(caminho); goto LOOP; }
Cálculo da chave secreta do protocolo Diffie-Hellmann
Spieluhr - esse código pode ser considerado um vírus?
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
redirecionando saida de comando touch para o AWK[AJUDA] (11)
filtrar só as pastas onde tem arquivo (1)
Impressora Canon Ip 1800 (Drivers) 64 bit (9)